package br.edu.ufcg.nokia.battleship.gui;

import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import br.edu.ufcg.nokia.battleship.Jogador;

/**
 * Classe de interface grafica para apresentacao da tela do hall da fama
 * @author Miguel Queiroga, Jackson Azevedo, Edmilson Almeida, Jose Luis
 * @version 1.0
 */

public class TelaHall extends JDialog{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -7868898987931649056L;
	
	JLabel[] melhoresJogadores;
	JLabel[] melhoresPontuacoes;
	JLabel nome;
	JLabel pontos;
	JLabel ancora;
	JPanel jp;
	
	/**
	 * Construtor para a janela grafica da tela
	 * do hall da fama.
	 * @param owner o componente grafico que eh o proprietario
	 * desta tela.
	 */	

	public TelaHall(JFrame owner){	
	    super(owner, "Ver", true);	
	    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		Toolkit tk = Toolkit.getDefaultToolkit();
		Dimension tela = tk.getScreenSize();
		setTitle("Hall da fama");
		setBounds(tela.width/4,tela.height/4,tela.width/2,tela.height/2);
			setResizable(false);
		setModal(true);
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				dispose();
			}
		});
	    ArrayList players = HallDaFama.ler();
		nome = new JLabel("Jogador: ");
		pontos = new JLabel("Pontos: ");
		ancora = new JLabel();
		nome.setBounds(20,20,90,20);
		pontos.setBounds(330,20,60,20);		
		melhoresJogadores = new JLabel[10];
		melhoresPontuacoes = new JLabel[10];
		jp = new JPanel();
		jp.setBounds(10,10,getWidth()-20,getHeight()-40);
		Container conteudo = getContentPane();
		
		for(int i = 0; i < players.size(); i++){
			if(players.get(i) != null){
				melhoresJogadores[i] = new JLabel(((Jogador)players.get(i)).getNome());
				melhoresPontuacoes[i] = new JLabel(((Jogador)players.get(i)).mostraPontuacao() + "");
				melhoresJogadores[i].setBounds(20,i*30+60,300,20);
				melhoresPontuacoes[i].setBounds(350,i*30+60,100,20);
				conteudo.add(melhoresPontuacoes[i]);
				conteudo.add(melhoresJogadores[i]);
			}
			else break;
		}
		
		jp.setBorder(BorderFactory.createLineBorder(Color.black,1));
		conteudo.add(nome);
		conteudo.add(pontos);
		jp.add(ancora);
		conteudo.add(jp);
		conteudo.add(ancora);
		setVisible(true);
	}
}